# demo05_time.py
import time
# 1. time.sleep(秒):
# def func():
#     print("start 搬砖~")
#     time.sleep(5)  # 程序阻塞5秒
#     print("end 搬砖~")
# func()
# 2. time.time(): 返回当前系统的时间戳, 可以做数学运算
print(time.time())
def func02():  # 计算执行func02函数所花费的时间
    sum = 0
    for i in range(1, 1000001):
        sum += i
    print(sum)
start = time.time()  # 计算函数调用前的时间戳
func02()
end = time.time()  # 计算函数调用后的时间戳
print(end - start)
# []: 包裹的参数都是可选参数，如果不手动指定，默认值
# 3. time.gmtime([sec]): 返回UTC的结构化时间(9元组)
#       sec默认值是当前系统的时间戳  time.time()
t1 = time.gmtime(time.time())
print(t1)
print(t1[0], t1[1], t1[2])
print(t1[:3])
print(t1.tm_hour, t1.tm_min, t1.tm_sec)
# 4. time.localtime([sec]): 返回当前时区的结构化时间(9元组)
#    sec默认值是当前系统的时间戳  time.time()
t2 = time.localtime(time.time())
print(t2)
print(t2[0], t2[1], t2[2])
print(t2[:3])
print(t2.tm_hour, t2.tm_min, t2.tm_sec)
# 5. time.ctime([sec]): 将时间戳转换成本地时间的字符串
#    sec:时间戳, 默认值当前系统的时间戳 time.time()
print(time.ctime(time.time()))  # Fri Jan 21 02:56:24 2022
# 6. time.asctime([结构化时间]): 9元组时间 -> 时间字符串
#    结构化时间: 默认值 time.localtime()
print(time.asctime(time.localtime()))  # Fri Jan 21 03:00:24 2022
# !!!7. time.strftime(时间格式, [结构化时间]):
#       结构化时间 -> 转成指定格式的时间字符串
#       结构化时间: 默认值time.localtime()
# time_str: 变量名含义，时间字符串
time_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(time_str)  # 2022-01-21 03:06:55
# 2022-07-21 21:21:21   str -> 结构化时间
# !!!8.time.strptime(时间字符串, 时间格式): 时间字符串 -> 结构化时间
t3 = time.strptime("2022-07-21 21:21:21", "%Y-%m-%d %H:%M:%S")
print("周" + str(t3.tm_wday+1))
# time.struct_time(
#     tm_year=2022, tm_mon=7, tm_mday=21,
#     tm_hour=21, tm_min=21, tm_sec=21, tm_wday=3,
#     tm_yday=202, tm_isdst=-1
# )
